export function Completion(data) {
	const hoverObj = {
		baseInfo: {
			addcreditMeasureType: '',
			annuityPlanType: '',
			annuityTrusteeMode: '',
			approvalSymbol: '',
			currencyMarketFundFlag: '',
			ensureObligorCode: '',
			ensureObligorName: '',
			evolveBeforeCode: '',
			expectRaiseAmount: '',
			faceValue: '',
			fiduciaryDuty: '',
			fundCode: '',
			fundEnglishName: '',
			fundFullName: '',
			fundName: '',
			fundOutsideCode: '',
			fundType: '',
			gradingRatio: '',
			incomeDisWay: '',
			innovateNatureRemark: '',
			investTactics: '',
			isActiveManage: '',
			isAddcreditMeasure: '',
			isAmortization: '',
			isAnnuityPension: '',
			isBasicPension: '',
			isBreakeven: '',
			isChannelBusiness: '',
			isEtfJoinFund: '',
			isGradFund: '',
			isGrade: '',
			isHoldFund: '',
			isHolderMeet: '',
			isIndexFund: '',
			isInnovateNature: '',
			isInstAcc: '',
			isListTransfer: '',
			isMarketTrade: '',
			isMom: '',
			isMutualFund: '',
			isNetWorthProduct: '',
			isNetWorthType: '',
			isOccupationalPension: '',
			isOrganCustom: '',
			isPensionProduct: '',
			isPensionTargetFund: '',
			isPrivateFund: '',
			isQdii: '',
			isRiskTacticsFund: '',
			isSamp: '',
			isSingleShare: '',
			isSocialSecurity: '',
			isStructuredProduct: '',
			isSubAssets: '',
			issuerEarlyTermFlag: '',
			managerStyle: '',
			marketFundType: '',
			marketTradeSite: '',
			mixedInvestBias: '',
			momFundCode: '',
			oneYardPassAccount: '',
			openFrequency: '',
			openFrequencyRemark: '',
			operateMode: '',
			organCustom: '',
			organForm: '',
			performanceBaseline: '',
			planType: '',
			pobcFundType: '',
			privateFundType: '',
			productBrand: '',
			productPeriod: '',
			remark: '',
			revenueFeature: '',
			riskGrade: '',
			settleCurrency: '',
			targetFundCode: '',
			targetFundName: '',
			usufructTransferProductFlag: '',
			valuationFate: '',
			valuationFrequency: '',
			valuationWay: '',
			subFundType: '',
			isSponsoredFund: '',
			sponsoredSelfCapital: '',
			sponsoredAgreedTerm: '',
			isFofFund: '',
			establishScale: '',
			newspaperId: '',
			productAssetType: '',
			productSpecialType: '',
			productAssetReportType: '',
			isSpecialAssetReport: '',
			isAssetSecuritizationBusiness: '',
			isAssetManagementProduct: '',
			addCreditOrganType: '',
			addCreditFormType: ''
		},
		consignerInfo: {
			certificateNumber: '',

			certificateType: '',

			city: '',

			consignerName: '',

			csrcType: '',

			peopleMax: '',

			peopleMin: '',

			province: '',

			subjectType: ''
		},

		dateInfo: {
			approvalDate: '',

			contractEndDate: '',

			deferRaiseDate: '',

			endListDate: '',

			establishDate: '',

			expectExpireDate: '',

			finishFilingDate: '',

			firstRedemptionDate: '',

			formalEvolveDate: '',

			initialFilingDate: '',

			isOpenPeriod: '',

			isPeriodEnd: '',

			liquidateAccompleteDate: '',

			liquidationStartDate: '',

			logonApprovalChangeDate: '',

			nextOpenFirstDate: '',

			operateEndDate: '',

			productExpireDate: '',

			raiseStartDate: '',

			reportPeriodStatus: '',

			subsistTerm: ''
		},

		fundFileInfo: {
			applyAgreementId: '',
			applyReportId: '',
			capitalManageContractId: '',
			commitmentLetterId: '',
			delayRaiseReplyId: '',
			enlistExplainId: '',
			enlistExplainId2: '',
			enlistExplainRemark: '',
			filingLetterId: '	',
			foundReplyId: '',
			fundContractFillId: '',
			fundContractId: '',
			fundContractId2: '	',
			fundContractRemark: '',
			fundPlanId: '',
			interResultId: '',
			lawProposalId: '',
			liquInfoationReportId: '',
			modifyLogonReplyId: '',
			otherMaterialsId: '',
			otherMaterialsId10: '',
			otherMaterialsId2: '',
			otherMaterialsId3: '',
			otherMaterialsId4: '',
			otherMaterialsId5: '',
			otherMaterialsId6: '',
			otherMaterialsId7: '',
			otherMaterialsId8: '',
			otherMaterialsId9: '',
			planExplainId: '',
			productDataResume: '',
			raiseLogonReplyId: '',
			riskProclaimId: '',
			specialLetterId: '',
			subscribeShareLetterId: '',
			tradeNoActionLetterId: '',
			trustAgreementId: '',
			trustAgreementId2: ''
		},

		investInfo: {
			bondMaxRatio: '',

			bondMinRatio: '',

			currencyMaxRatio: '',

			currencyMinRatio: '',

			hkStockMaxRatio: '',

			isContainSpclLimit: '',

			isCoverTactics: '',

			isQuantTactics: '',

			remark: '',

			spclLimitRemark: '',

			specialTypeChar: '',

			specialTypeName: '',

			stockMaxRatio: '',

			stockMinRatio: ''
		},

		organInfo: {
			accountFirmId: '',

			bordersAdvisorEnglishName: '',

			bordersAdvisorName: '',

			bordersCustodianEnglishName: '',

			bordersCustodianName: '',

			custodyBranchOrganName: '',

			fundTaType: '',

			handleLawerName: '',

			investAdvisorId: '',

			isInvestAdvisorRecord: '',

			isThirdPartyCustody: '',

			lawId: '',

			managementId: '',

			trusteeId: '',
			managementRegisterNumber: '',
			trusteeRegisterNumber: '',
			advisorRegisterNumber: '',
			lawFirmRegisterNumber: '',
			accountFirmRegisterNumber: '',
			advisorEnglishName: '',
			investAdvisorOrgan: '',
			investAdvisorRate: '',
			iscustodyBranchOrgan: ''
		},

		rateInfo: {
			accrualDatum: '',

			accrualPointTime: '',

			accrualRatio: '',

			breakQuitRate: '',

			escrowRate: '',

			escrowRateRemark: '',

			feeRateAlgorithm: '',

			generalSubscription: '',

			investAdvisorAchieveReward: '',

			investAdvisorRate: '',

			isAchieveReward: '',

			managementRate: '',

			managementRateRemark: '',

			ordinaryRedemption: '',

			ordinarySubscription: '',

			othersAchieveRatio: '',

			pensionCustomers: '',

			rewardExplain: '',

			salesServiceRate: '',

			salesServiceRateRemark: '',

			subscriptionCustomers: '',
			obEndSubscription: '',
			bendPensionS: ''
		},

		riskInfo: {
			earlyWarnLine: '',

			earlyWarnNetWorth: '',

			investLeverRate: '',

			isRiskMeasures: '',

			managerInvestmentAmount: '',

			managerInvestmentRatio: '',

			managerIsInvestment: '',

			managerIsPartake: '',

			managerPartakeAmount: '',

			managerPartakeRatio: '',

			maxRetreat: '',

			otherRiskExpression: '',

			otherRiskStep: '',

			stopLossLine: '',

			stopLossNetWorth: ''
		}

	}

	for (const i in hoverObj) {
		if (!data[i]) {
			data[i] = hoverObj[i]
		}
	}

	for (const i in data) {
		hoverObj[i] = {
			...hoverObj[i],
			...data[i]
		}
	}

	for (const i in hoverObj) {
		const keys = Object.keys(hoverObj[i])
		const obj = hoverObj[i]
		keys.forEach(item => {
			if (!obj[item]) {
				obj[item] = '暂无提示配置，请到 “提示配置” 页面配置'
			}
		})
		hoverObj[i] = obj
	}

	if (data.hoverInfoId) {
		hoverObj.hoverInfoId = data.hoverInfoId
	}

	return hoverObj
}
